/**
 * @(#)${NAME}.java 23/01/05
 *
 * Copyright 2005-2010 Psiqueware S.A. de C.V. All Rights Reserved.
 *
 * This software is the proprietary information Psiqueware S.A. de C.V.
 * Use is subject to license terms.
 *
 * Usuario : Psique
 * Creaci&oacute;n: 20-mar-2006 - 12:11:04
 * Cambios :
 *  Fecha | Autor  |  Cambios
 *  20-mar-2006 | <a href = "mailto:AngelElectrico@PsiqueWare.com">Angel El&eacute;ctrico</a> | Creaci&oacute;n del Objeto.
 */

package com.psiqueware.alheli.seguridad.dao;

import com.psiqueware.alheli.dao.BaseDAOFactory;
import com.psiqueware.alheli.dao.EnlaceTransaccional;
import com.psiqueware.alheli.seguridad.*;


/**
 * Fabrica de objetos dao para el modulo de Seguridad.
 * <br/>Paquete Original: com.psiqueware.basico.seguridad.dao
 * <br/>Nombre  Original: SeguridadDAOFactory
 * <br/><a href="SeguridadDAOFactory.java.html"><i>Ver C&oacute;digo Fuente</i> </a>
 *
 * @author <a href="mailto:AngelElectrico@psiqueware.com">Angel El&eacute;ctrico</a>
 * @version Revision: 1.1 20-mar-2006 12:11:04
 * @noinspection OverlyCoupledClass, DuplicateStringLiteralInspection, StaticVariableMayNotBeInitialized, OverlyComplexClass, ClassWithoutToString, ClassWithTooManyFields
 */
public final class SeguridadDAOFactory extends BaseDAOFactory
{
    /**
     * Devuelve una instancia del dao para PermisoRol.
     *
     * @param enlace para obtener su tipo.
     *
     * @return PermisoRolDAO para operaciones CRUD.
     */
    public static synchronized PermisoRolDAO findDAOPermisoRol(final EnlaceTransaccional enlace)
    {
        return (PermisoRolDAO) findDAO(PermisoRol.class, enlace);
    }

    /**
     * Devuelve una instancia del dao para RolCredencial.
     *
     * @param enlace para obtener su tipo.
     *
     * @return RolCredencialDAO para operaciones CRUD.
     */
    public static synchronized RolCredencialDAO findDAORolCredencial(final EnlaceTransaccional enlace)
    {
        return (RolCredencialDAO) findDAO(RolCredencial.class, enlace);
    }

    /**
     * Devuelve una instancia del dao para Agrupacion.
     *
     * @param enlace para obtener su tipo.
     *
     * @return AgrupacionDAO para operaciones CRUD.
     */
    public static synchronized AgrupacionDAO findDAOAgrupacion(final EnlaceTransaccional enlace)
    {
        return (AgrupacionDAO) findDAO(Agrupacion.class, enlace);
    }


    /**
     * Devuelve una instancia del dao para Credencial.
     *
     * @param enlace para obtener su tipo.
     *
     * @return CredencialDAO para operaciones CRUD.
     */
    public static synchronized CredencialDAO findDAOCredencial(final EnlaceTransaccional enlace)
    {
        return (CredencialDAO) findDAO(Credencial.class, enlace);
    }

    /**
     * Devuelve una instancia del dao para RegistroPermiso.
     *
     * @param enlace para obtener su tipo.
     *
     * @return RegistroPermisoDAO para operaciones CRUD.
     */
    public static synchronized RegistroPermisoDAO findDAORegistroPermiso(final EnlaceTransaccional enlace)
    {
        return (RegistroPermisoDAO) findDAO(RegistroPermiso.class, enlace);
    }

    /**
     * Devuelve una instancia del dao para Rol.
     *
     * @param enlace para obtener su tipo.
     *
     * @return RolDAO para operaciones CRUD.
     */
    public static synchronized RolDAO findDAORol(final EnlaceTransaccional enlace)
    {
        return (RolDAO) findDAO(Rol.class, enlace);
    }


    /**
     * Devuelve una instancia del dao para Titulo.
     *
     * @param enlace para obtener su tipo.
     *
     * @return TituloDAO para operaciones CRUD.
     */
    public static synchronized TituloDAO findDAOTitulo(final EnlaceTransaccional enlace)
    {
        return (TituloDAO) findDAO(Titulo.class, enlace);
    }

}
